import re  # 导入re模块，用于正则表达式处理
import uuid
import datetime
import json
#去除文件名中的特殊字符
def remove_special_characters(filename):
    """
    去除文件名中的特殊字符
    :param filename: 原始文件名
    :return: 清理后的文件名
    """
    # 使用正则表达式替换特殊字符
    cleaned_filename = re.sub(r'[^a-zA-Z0-9_.-]', '_', filename)
    return cleaned_filename  # 返回处理后的文件名

#获取当前工作目录中的文件名
def get_filenames(directory):
    """
    获取指定目录中的所有文件名
    :param directory: 目标目录路径
    :return: 文件名列表
    """
    return os.listdir(directory)  # 返回目录中的文件名列表

#遍历文件名，去除特殊字符
def process_filenames(directory):
    """
    处理指定目录中的文件名，去除特殊字符
    :param directory: 目标目录路径
    """
    filenames = get_filenames(directory)  # 获取文件名列表

    for filename in filenames:
        cleaned_filename = remove_special_characters(filename)  # 清理文件名

        # 检查是否需要重命名
        if filename != cleaned_filename:
            os.rename(os.path.join(directory, filename), os.path.join(directory, cleaned_filename))  # 重命名文件
            print(f'Renamed: {filename} -> {cleaned_filename}')  # 打印重命名信息
# 打印日志文件
def write_log(data,userId='',date_str='1',filename=''):
    # 获取当前日期
    now = datetime.datetime.now()
    if filename=='' and date_str=='' and userId=='':
        filename = f"./txt/data_1.txt"
    elif filename=='' and date_str!='' and userId!='':
        date_str = now.strftime('%Y-%m-%d')
        filename = f"./txt/{date_str}_{userId}.txt"
    else:
        filename = f"./txt/data_{uuid.uuid4()}.txt"
    
    
    with open(filename, 'a', encoding='utf-8') as f:
        json.dump(data, f, ensure_ascii=False, indent=2)
        f.write('\n')  # 手动添加换行符
        f.write('\n')  # 手动添加换行符
        f.write('\n')  # 手动添加换行符
        f.write('\n')  # 手动添加换行符
        f.write('\n')  # 手动添加换行符

